Verification of Object Oriented Programs Using Class Invariants
نویسندگان
چکیده
A proof system is presented for the verification and derivation of object oriented programs with as main features strong typing, dynamic binding, and inheritance. The proof system is inspired on Meyer’s system of class invariants [12] and remedies its unsoundness, which is already recognized by Meyer. Dynamic binding is treated in a flexible way: when throughout the class hierarchy overriding methods respect the preand postconditions of the overridden methods, very simple proof rules for method calls suffice; more powerful proof rules are supplied for cases where one cannot or does not want to follow this restriction. The proof system is complete relative to proofs for properties of pointers and the data domain.
منابع مشابه
Modular Verification of Static Class Invariants
Object invariants describe the consistency of object-oriented data structures and are central to reasoning about the correctness of object-oriented software. But object invariants are not the only consistency conditions on which a program may depend. The data in object-oriented programs consists not just of object fields, but also of static fields, which hold data that is shared among objects. ...
متن کاملVerification of Object-Oriented Programs with Invariants
An object invariant defines what it means for an object’s data to be in a consistent state. Object invariants are central to the design and correctness of objectoriented programs. This paper defines a programming methodology for using object invariants. The methodology, which enriches a program’s state space to express when each object invariant holds, deals with owned object components, owners...
متن کاملSudoku App: Model-Driven Development of Android Apps Using OCL?
1998 ACM CR Categories: D.2.1 [Software Engineering] Requirements/Specificationslanguages; D.2.2 [Software Engineering] Design Tools and Techniquesobject-oriented design methods, state diagrams; D.2.4 [Software Engineering] Software/Program Verificationclass invariants, formal methods; F.3.1 [Logics and Meaning of Programs] Specifying and Verifying and Reasoning about Programsassertions, in...
متن کاملModular verification of global module invariants in object-oriented programs
Modules and objects both contain variables whose values may be constrained by invariants. For example, in the object-oriented languages Java and C#, a module is a class and its static fields, and an object is an instance of a class and its instance variables. The invariants of modules work differently both from the invariants of objects alone and from the invariants of modules in a procedural l...
متن کاملVerification of Multithreaded Object-Oriented Programs with Invariants
Developing safe multithreaded software systems is difficult due to the potential unwanted interference among concurrent threads. This paper presents a sound, modular, and simple verification technique for multithreaded object-oriented programs with object invariants. Based on a recent methodology for object invariants in single-threaded programs, this new verification technique enables leak-pro...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000